
import TipoDeMoeda.Moeda;
import java.util.ArrayList;
import java.util.Iterator;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Caio
 */
public class Modelo extends Component implements Composite {

    ArrayList<Component> components = new ArrayList<>();
    private Integer hora = 0;
    private Double custo = 0.0;
    
    @Override
    public void addComponent(Component component) {
        components.add(component);
        this.hora = this.hora + component.getHora();
        this.custo = this.custo + component.getCusto();
    }

    @Override
    public void exibirComponents(Moeda moeda) {
        for (Iterator<Component> it = components.iterator(); it.hasNext();) {
            Component component = it.next();
            System.out.println("Etapa : " + component.getNome());
            System.out.println("Custo total da etapa em horas : " + component.getHora());
            component.exibirComponents(moeda);
        }
        System.out.println("O custo total em horas do projeto foi de :  " + getHora());
        System.out.println("O preço total do projeto foi de : "+moeda.SelecionaMoeda(this.getCusto()));
    }

    @Override
    public Integer getHora() {
        return hora;
    }

    @Override
    public Double getCusto() {
        return this.custo;
    }

    @Override
    public String getNome() {
        return null;
    }

    @Override
    public void removeComponent(Component component) {
        this.components.remove(component);
    }
}
